技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2022 iThome 鐵人賽
DAY
26
1
自我挑戰組
開始系統測試
系列 第
26
篇
Day 26 | 性能測試
14th鐵人賽
Pancy
2022-10-11 01:07:48
1998 瀏覽
分享至
(一)、性能測試的含義
什麼是性能測試
測試軟體的性能表現,考量軟體執行得如何
一般關注時間/效率、資源占用等情形
什麼時候進行
已經通過系統測試,功能比較穩定時進行。
(二)、性能測試術語
請求 - 客戶端像伺服器發出請求獲得數據、文件或圖片等資源
響應 - 伺服器向客戶端發送數據、文件或圖片等資源
協議
傳輸層協議 - tcp、udp
應用層協議 - ftp、http、dns、dhcp、smtp、pop
響應時間
應用程式從用戶發出請求開始,到客戶端接收到所有數據所消耗的時間
網頁響應時間細分
網路傳輸時間:N1+N2+N3+N4
應用資料庫處理數據:A1+A3
資料庫處理時間:A2
在線用戶 - 正在使用軟體的用戶
開發用戶
指同一時刻與伺服器進行數據交換的所有用戶數量
計算開發用戶數
一般都根據以往經驗和行業標準進行估算
參考其他同類產品
分析歷史數據
試營運
虛擬用戶 - 性能測試工具使用虛擬用戶模擬真實用戶的行為
吞吐量與吞吐率
吞吐量 - 指一段時間內伺服器處理的位元組數,直接顯現伺服器的乘載能力
從吞吐量和VU關聯圖可以看出,吞吐量再VU增長到一定數量時,系統出現瓶頸,此時吞吐量不再隨著VU增大,而是趨近於平衡
實際測試時,吞吐量在測試前是未知的,必須通過不斷添加虛擬用戶來測試,來找到吞吐量最大值
吞吐率(Throughout)
單位時間內從伺服器返回的位元組數,即吞吐量/時間,也可以是單位時間內處理的客戶請求數
是衡量網路性能的一個重要指標,吞吐率越大表是系統的負載能力越強
每秒任務數(TPS,Transaction Per Second)
表示每秒系統處理的任務數量,是衡量系統處理能力的重要指標
如果每個任務對應一筆業務,那麼TPS就表示伺服器每秒處理的業務筆數
點擊率(Hit Per Second)
指每秒鐘用戶向伺服器條間的HTTP請求數量
點擊一次可能會向伺服器發出多個HTTP請求
通常伺服器都有防刷新機制,以防止刷新導致的巨大壓力
點擊率僅僅反映客戶端提交的請求數,不能表示伺服器當前承受的壓力,因為伺服器不能處理全部請求時,可以拒絕客戶端的部份請求
若把每次點擊視為一次提交事務來對待,則點擊率與TOS同義。
思考時間(Think Time)
也稱休眠時間、等待時間
指用戶在進行操作時,每個請求間的時間間隔
負載測試一般忽略思考時間,壓力或可靠性測試根據實際情況設置一個思考時間,通常思考時間設置為3~5秒
資源利用率
資源利用率
指伺服器系統中不同硬體資源被占用的程度,包含CPU使用率、記憶體使用率、硬碟使用率、網路等
性能測試中常用資源利用率進行橫向比對,如CPU使用率很高,而其他資源較低,可知CPU是系統瓶頸
配置優化測試中,通過比較配置優化前後的系統資源利用率來判斷優化結果。
性能計數器(Counter)
是描述伺服器或操作系統性能的一些數據指標,主要是通過添加計數器來觀察系統資源的使用情況
計數器在性能測試中發揮著「監控和分析」的關鍵作用,尤其是分析系統可擴展性和定位性能瓶頸時
性能測試中分析測試結果時,必須機於多個不同的計數器進行分析
(三)、性能測試分類
負載測試(Load Testing)
通過對被測系統不斷地加壓,直到超過預定的指標或者部份資源達到了飽和狀態不能再加壓為止
此方法主要是為了尋找系統最大的負載能力,為性能優化提供依據
壓力測試(Stress Testing)
當系統已經達到一定的飽和程度,測試系統處理業務的能力,測試系統是否會出現崩潰等
一般通過模擬負載等方法,使系統資源達到一個較高水平
此方法一般用於系統穩定性測試
併發測試(Concurrency Testing)
模擬多個用戶同時訪問同一應用、模組或數據,觀察系統是否存在死結、系統處理速度明顯下降等性能問題
體積測試/洪水測試(Volume Testing)
尋找軟體系統某向指標的極限值(如最大併發用戶數、資料庫紀錄數、最大負載等)的測試,是一種測試目標
可靠性测试(Reliability Testing)
或稱穩定性測試、健壯性測試
當系統在一定的業務壓力下持續運作一段時間,觀察系統是否達到要求的穩定性
可靠性測試一般必須給出一個明確的要求,如系統能夠持續無故障運行幾天
是一種測試目標
配置測試(Configuration Testing)
配置測試
通過調整軟/硬體環境,了解不同環境對系統性能的影響從而找到系統的最佳配置
此方法一般用於系統優化和規劃
基準測試
在一定的軟硬體和網路環境下,模擬一定數量的虛擬用戶運行一種或多種業務,將測試結果作為基線數據,在系統優化或系統評測過程中,通過運行相同的業務場景來比測試結果,確定優化是否達到效果,或為系統的選擇提供依據
(四)、性能測試流程
性能測試過程分為四個階段:測試設計、建構、執行、分析
設計
定義待測試的業務流程、業務的平均處理量、業務處理量的最高峰值、組合業務流程、系統整體用戶和響應時間目標
建構
設計配置和配置測試系統及基礎設施,使用自動化性能測試解決方案建構測試腳本和負載方案
具體包括:編寫腳本、增強腳本、設計場景
執行
包含運行負載方案和測量系統性能,對系統資源進行監控
分析、診斷和調節
主要測量系統性能,並使負載測試進入下一級別,重點查找問題原因以幫助工程師迅速解決問題,並適時調節系統參數以提高性能
留言
追蹤
檢舉
上一篇
Day 25 | 介面測試和易用性測試
下一篇
Day 27 | Web測試
系列文
開始系統測試
共
30
篇
目錄
RSS系列文
訂閱系列文
11
人訂閱
26
Day 26 | 性能測試
27
Day 27 | Web測試
28
Day 28 | 手機APP測試(一)
29
Day 29 | 手機APP測試(二)
30
Day 30 | 自動化測試概述
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22200
篇
完賽人數
602
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
熟識南投軟體工程師推薦
如何練國考資訊題?
筆電無法使用usb開機重裝系統
CCNA相關問題詢問
電商在販售商品時,可以自行縮短保固期限嗎?
求救 有人會修改cookie權限嗎
python scrapy pipeline實作問題請教
防火牆互通問題
函數問題
桌面的使用者文件圖標壞掉
熱門回答
防火牆互通問題
筆電無法使用usb開機重裝系統
if函數中的>&<&=是否可以使用儲存格代替
熟識南投軟體工程師推薦
開啟Microsoft Edge 瀏覽器無法開啟網頁,出現錯誤訊息
熱門文章
每日一篇學習筆記 直到我做完專題 :( [Day1]
[翻譯]使用AI工具寫程式碼時如何避免「AI幻覺」?
每日一篇學習筆記 直到我做完專題 :( [Day2]
每日一篇學習筆記 直到我做完專題 :( [Day3]
每日一篇學習筆記 直到我做完專題 :( [Day4]
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}